package net.moonbiter.ebs.protocols.httpparams.tree.interp;

import java.util.Map;

import net.moonbiter.OperationFailureException;
import net.moonbiter.ebs.NodeName;
import net.moonbiter.ebs.protocols.httpparams.tree.Tree;
import net.moonbiter.ebs.validation.ValidationException;
import net.moonbiter.ebs.validation.ValidationParamException;

/**
 * Interpreta da una mappa di valori gli oggetti richiesti. 
 * 
 * @author federico
 */
public interface TreeInterpreter {
	
	public <T> T interpret(Tree tree, String name,
			Class<T> type) throws ValidationException,
			OperationFailureException;
	
	public <T> T interpret(Tree tree, NodeName[] namePortions,
			Class<T> type) throws ValidationException,
			OperationFailureException;
}
